perm filename FONT.BH[UP,DOC]1 blob
sn#145904 filedate 1975-02-19 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 The FONT program allows modification of the numeric information
C00010 ENDMK
Cā;
The FONT program allows modification of the numeric information
in a font file (as opposed to the bit data). Since it does not change
bit data, nor add or delete characters, it does not change the size of
the file. It is intended for such operations as moving the baseline.
When you run FONT (currently residing on [S,BH]), it asks for
a file name. The defaults are .FNT[XGP,SYS]--to modify a file on your
own area, specify "NAME[". [PRJ] uses your own (alias) PRG as usual.
The "global" information for the font is typed: font description, font
number, max. height, max. width, and baseline (lines below the top, as
in the file, not lines above the bottom as in FCOPY). You are next
given the option of listing the information for each character. Note:
all yes-no questions should be answered with a single character; anything
other than "Y" or "y" means no.
The information listed for each character includes its normal
graphic (or name for normally non-printing ones), octal code, width,
raster width if any (this is the actual width for characters whose
horizontal increment is not the same as its number of dots on a line),
number of blank lines at the top, number of lines of data, and number
of blank lines at the bottom. (This last number is calculated from the
others, not found in the file.) If there is a nonzero left-kern, that
is printed also.
The old font-wide left-kern format is no longer used. FONT will
refuse to deal with any font file using that format. See BH about
converting such fonts to the new format.
The next option presented is to modify the global data. If you
choose to do this, the program asks for a new value for the items listed
above. The font description is a text line ending with <return>; the
others are unsigned decimal integers. If you type <return> with no new
value, the old one is retained. At a display terminal, your line editor
is loaded with the old description when you are asked for a new one.
The remaining option allows modification of the character data.
If you agree to this one, you are given two sub-options: universal and
individual mods. The first option allows you to change the width,
the number of blank lines on top, and the left-kern value for all
characters in the font. Note:
if you change the width in this way, the program automatically sets the
raster width for each character to the old width if the raster width
field was zero, so the file remains consistent. The numbers specified
for these changes may be preceded by "+" or "-" to add or subtract the
number you specify to the old value. Thus, all characters could be
moved up two lines by specifying -2 for the rows-from-top value. Again,
a <return> with no number does not make the change. Note: if you use
a minus sign with these numbers, it is possible for the result to be
negative. If this happens for some character, the value is made zero,
and a warning message is typed.
If you want to make individual mods to characters, the program
enters a loop in which you specify characters to change, and operations
to perform. When you specify a character, its current data are typed
as in the list option. Then you specify modifications in the form
<command> <optionally signed integer> <return>. The commands are
single letters. In this mode you are allowed to change data, e.g.,
raster width, which would make the file invalid!!! This is to allow
surgery if necessary, but should not be done to healthy fonts. After
making as many mods to the character as you want, you use the C command
with no numeric argument to write out the new data and go on to the
next character. Typing <meta><anything> to the request for another
character leaves the loop and exits.
One of the options allowed while modifying individual characters
is to change the character code corresponding to that graphic, i.e.,
move it from its present character code to another one. This is
straightforward if there was not already a character corresponding
to the new code, but if so, that character must be moved to yet
another character code. Therefore, when you are done with the first
character and type C to finish modifying that character, you are
automatically started modifying the old character which formerly
occupied its new code, and are asked to specify a new code for it.
The FONT program will not allow you to flush a graphic from the font.
Don't exit by typing <call> after you've said yes to a
modification operation, because the first two blocks of the file
(including character widths) are not written until the end.